#ifndef LOGGERMANAGER_H_
#define LOGGERMANAGER_H_

#include "util/logger/Logger.h"
#include <string>

namespace util {

/*
 * Clase Singleton que maneja el logger que se utiliza en
 * la aplicacion.
 * Toma datos del archivo de configuracion res/logger.config.
 */
class LoggerManager {
public:
	/*
	 * Destructor.
	 */
	~LoggerManager();

	/*
	 * Devuelve la instancia unica de la clase.
	 */
	static LoggerManager* getInstance();


	/*
	 * Y hace construccion file config safe (si el archivo de configuraciones no existe crea un logger console)
	 */
	static LoggerManager* getInstanceConfigSafe();

	/*
	 * Devuelve el logger que escribe en el output configurado.
	 */
	Logger* getLogger();

private:
	LoggerManager(bool onErrorBuildDefaultConsole);
	static LoggerManager* INSTANCE;
	Logger* logger;
};
}

#endif /* LOGGERMANAGER_H_ */
